Distributed computing systems include multiple distinct services. Each service may be independent of other services, and may be accessed without knowledge of its underlying platform implementation. Commonly, services invoke other distinct services during processing. For example, a travel agent service may invoke a flight booking service and a hotel booking service. In turn, the flight booking service and hotel booking service may each invoke a credit card service.
In conventional distributed computing systems, it can be difficult to know what services depend on other services. Even where it is known that a service depends on another service, conventional distributed computing systems do not have mechanisms for determining a degree for such a dependency.
FIG. 1A illustrates a conventional distributed computing system 100 that includes a first service 105 at a first location 120, and a second service 110 and a third service 115 at a second location 130. The first location 120 and second location 130 are connected via a network 125. First service 105 depends on second service 110, which in turn depends on third service 115. Since first service 105 is at a different location from second service 110, lag may be introduced whenever first service 105 invokes second service 110. To reduce this lag, the second service 110 may be migrated from the second location 130 to the first location 120.
FIG. 1B illustrates another conventional distributed computing system 150 showing the distributed computing system of FIG. 1A after the second service 110 has been migrated. Since the second service 116 is now at the first location 120 along with the first service 105, first service 105 can invoke second service 110 without lag. However, second service 110 depends on third service 115. Therefore, first service 105 still encounters a similar lag as it did prior to the migration, since a lag is introduced when second service 110 invokes third service 115. However, the dependency between the second service 110 and the third service 115 may not be apparent in the conventional computing system 150.